! -*- fortran -*-
!
! Copyright (c) 2006-2014 Cisco Systems, Inc.  All rights reserved.
! Copyright (c) 2009-2012 Los Alamos National Security, LLC.
!                         All rights reserved.
! Copyright (c) 2017-2020 Research Organization for Information Science
!                         and Technology (RIST).  All rights reserved.
!
! $COPYRIGHT$
!
! Additional copyrights may follow
!
! $HEADER$
!

!     This file exists to have a Fortran-safe header file that has
!     results from configure tests.

#ifndef OMPI_FORTRAN_CONFIGURE_OUTPUT_H
#define OMPI_FORTRAN_CONFIGURE_OUTPUT_H

! Whether we're using wrapper F08 functions or not
#define OMPI_FORTRAN_NEED_WRAPPER_ROUTINES @OMPI_FORTRAN_NEED_WRAPPER_ROUTINES@

! Whether we have PRIVATE or not
#define OMPI_FORTRAN_HAVE_PRIVATE @OMPI_FORTRAN_HAVE_PRIVATE@

! Whether we have ABSTRACT or not
#define OMPI_FORTRAN_HAVE_ABSTRACT @OMPI_FORTRAN_HAVE_ABSTRACT@

! Whether we have ASYNCHRONOUS or not
#define OMPI_FORTRAN_HAVE_ASYNCHRONOUS @OMPI_FORTRAN_HAVE_ASYNCHRONOUS@

! Whether we have ISO C binding or not
#define OMPI_FORTRAN_HAVE_ISO_C_BINDING @OMPI_FORTRAN_HAVE_ISO_C_BINDING@

! Whether we are building the MPI F08 bindings with subarray support or not
#define OMPI_FORTRAN_SUBARRAYS_SUPPORTED @OMPI_FORTRAN_SUBARRAYS_SUPPORTED@

! Line 1 of the ignore TKR syntax
! ...JMS not figured out yet...

! Line 2 of the ignore TKR syntax
#define OMPI_FORTRAN_IGNORE_TKR_TYPE @OMPI_FORTRAN_IGNORE_TKR_TYPE@


#define OMPI_FORTRAN_BUILD_SIZEOF @OMPI_FORTRAN_BUILD_SIZEOF@
! Integers

#define OMPI_HAVE_FORTRAN_INTEGER1 @OMPI_HAVE_FORTRAN_INTEGER1@
#define OMPI_KIND_FORTRAN_INTEGER1 @OMPI_KIND_FORTRAN_INTEGER1@
#define OMPI_SIZEOF_FORTRAN_INTEGER1 @OMPI_SIZEOF_FORTRAN_INTEGER1@

#define OMPI_HAVE_FORTRAN_INTEGER2 @OMPI_HAVE_FORTRAN_INTEGER2@
#define OMPI_KIND_FORTRAN_INTEGER2 @OMPI_KIND_FORTRAN_INTEGER2@
#define OMPI_SIZEOF_FORTRAN_INTEGER2 @OMPI_SIZEOF_FORTRAN_INTEGER2@

#define OMPI_HAVE_FORTRAN_INTEGER4 @OMPI_HAVE_FORTRAN_INTEGER4@
#define OMPI_KIND_FORTRAN_INTEGER4 @OMPI_KIND_FORTRAN_INTEGER4@
#define OMPI_SIZEOF_FORTRAN_INTEGER4 @OMPI_SIZEOF_FORTRAN_INTEGER4@

#define OMPI_HAVE_FORTRAN_INTEGER8 @OMPI_HAVE_FORTRAN_INTEGER8@
#define OMPI_KIND_FORTRAN_INTEGER8 @OMPI_KIND_FORTRAN_INTEGER8@
#define OMPI_SIZEOF_FORTRAN_INTEGER8 @OMPI_SIZEOF_FORTRAN_INTEGER8@

#define OMPI_HAVE_FORTRAN_INTEGER16 @OMPI_HAVE_FORTRAN_INTEGER16@
#define OMPI_KIND_FORTRAN_INTEGER16 @OMPI_KIND_FORTRAN_INTEGER16@
#define OMPI_SIZEOF_FORTRAN_INTEGER16 @OMPI_SIZEOF_FORTRAN_INTEGER16@

! Reals

#define OMPI_HAVE_FORTRAN_REAL2 @OMPI_HAVE_FORTRAN_REAL2@
#define OMPI_KIND_FORTRAN_REAL2 @OMPI_KIND_FORTRAN_REAL2@
#define OMPI_SIZEOF_FORTRAN_REAL2 @OMPI_SIZEOF_FORTRAN_REAL2@

#define OMPI_HAVE_FORTRAN_REAL4 @OMPI_HAVE_FORTRAN_REAL4@
#define OMPI_KIND_FORTRAN_REAL4 @OMPI_KIND_FORTRAN_REAL4@
#define OMPI_SIZEOF_FORTRAN_REAL4 @OMPI_SIZEOF_FORTRAN_REAL4@

#define OMPI_HAVE_FORTRAN_REAL8 @OMPI_HAVE_FORTRAN_REAL8@
#define OMPI_KIND_FORTRAN_REAL8 @OMPI_KIND_FORTRAN_REAL8@
#define OMPI_SIZEOF_FORTRAN_REAL8 @OMPI_SIZEOF_FORTRAN_REAL8@

#define OMPI_HAVE_FORTRAN_REAL16 @OMPI_HAVE_FORTRAN_REAL16@
#define OMPI_KIND_FORTRAN_REAL16 @OMPI_KIND_FORTRAN_REAL16@
#define OMPI_SIZEOF_FORTRAN_REAL16 @OMPI_SIZEOF_FORTRAN_REAL16@

! Complexes

#define OMPI_HAVE_FORTRAN_COMPLEX4 @OMPI_HAVE_FORTRAN_COMPLEX4@
#define OMPI_KIND_FORTRAN_COMPLEX4 @OMPI_KIND_FORTRAN_COMPLEX4@
#define OMPI_SIZEOF_FORTRAN_COMPLEX4 @OMPI_SIZEOF_FORTRAN_COMPLEX4@

#define OMPI_HAVE_FORTRAN_COMPLEX8 @OMPI_HAVE_FORTRAN_COMPLEX8@
#define OMPI_KIND_FORTRAN_COMPLEX8 @OMPI_KIND_FORTRAN_COMPLEX8@
#define OMPI_SIZEOF_FORTRAN_COMPLEX8 @OMPI_SIZEOF_FORTRAN_COMPLEX8@

#define OMPI_HAVE_FORTRAN_COMPLEX16 @OMPI_HAVE_FORTRAN_COMPLEX16@
#define OMPI_KIND_FORTRAN_COMPLEX16 @OMPI_KIND_FORTRAN_COMPLEX16@
#define OMPI_SIZEOF_FORTRAN_COMPLEX16 @OMPI_SIZEOF_FORTRAN_COMPLEX16@

#define OMPI_HAVE_FORTRAN_COMPLEX32 @OMPI_HAVE_FORTRAN_COMPLEX32@
#define OMPI_KIND_FORTRAN_COMPLEX32 @OMPI_KIND_FORTRAN_COMPLEX32@
#define OMPI_SIZEOF_FORTRAN_COMPLEX32 @OMPI_SIZEOF_FORTRAN_COMPLEX32@

#define OMPI_ENABLE_MPI1_COMPAT @OMPI_ENABLE_MPI1_COMPAT@

#define OMPI_FORTRAN_HAVE_TYPE_MPI_STATUS @OMPI_FORTRAN_HAVE_TYPE_MPI_STATUS@

! Include some post-processing, based on the values from above

#include "ompi/mpi/fortran/configure-fortran-output-bottom.h"

#endif
